home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 2 / CU Amiga Magazine's Super CD-ROM 02 (1996)(EMAP Images)(GB)[!][issue 1996-04].iso / misc / sadeness_software / bonus-stuff / top5 / damagewolf_v2 / mapeditor.help.readme < prev    next >
Text File  |  1996-02-12  |  7KB  |  145 lines

  1. Aphex Twin is playing softly in the background.  I have a large, hot coffee cup
  2. in  front  of  me.  I have gained some EXTRA concentration by meditating for an
  3. hour.   I think I am just in the mood to start to explain how to use one of the
  4. most confusing utilities I have ever made.
  5.  
  6. What am I refering to?  The Map Editor.
  7.  
  8. The command line usage of Mapeditor is 'MapEditor <file name>'.
  9.  
  10. The file name must not be enclosed with quotes even in case the name had spaces
  11. -  Quotes  would  be interpreted to be a part of the file name.  If no map file
  12. name  is  given, the editor starts with a blank map, relying on default texture
  13. names and maze attributes.
  14.  
  15. Let's  take  a  look  at how the Wolf3D's screen is produced.  A set of rays is
  16. casted  from  the player's location along the map.  Whenever this cast enters a
  17. new square in the map, the contents of that map square is checked.  If there is
  18. a  wall  blocking the path of the ray, the wall block will be viewed on screen.
  19. The  raycaster returns the distance to a wall in special "iterative units" that
  20. equals  to  the distance the ray travelled.  After the distance to the wall has
  21. been  retrieved,  a  piece  of the vision can be rendered; a piece of one pixel
  22. width.   This  piece  is  filled with a wall according the distance and scaling
  23. formulas.   I won't go any more detailed; this is the basis of a Wolfenstein 3D
  24. engine.
  25.  
  26. This  basic  method forces all the walls to keep a steady 90 degrees angle with
  27. each other.  Now, the map of my Wolf3D consists of two separate maps that allow
  28. some  extensions.   Why  2  maps?   Well,  what  was  left  out in the previous
  29. explanation  was  that  how  the  engine knows which texture it should display.
  30. This  is  read  from  the  map,  obviously.   So,  when a ray hits a block, the
  31. algorithm  checks  what  is  the  ID  of  the block the ray hit and sets up the
  32. texture according to that?  Yes and no.  Yes, as it is basically that way.  But
  33. there is an extension.  I set up one texture ID to work as a pointer to the 2nd
  34. map.   This  2nd map contains more texture settings, specially set so that when
  35. the  special map texture ID (it is called "pseudo" or "special" or "#" -texture
  36. from here onwards) is hit by a ray, the engine checks which side on the #-block
  37. the  ray hit the block from, and takes the texture to be displayed from the 2nd
  38. map  so, that the texture on 2nd map that is BELOW the #-block is viewed on the
  39. south  side, the 2nd map texture LEFT to #-block is viewed on the west side and
  40. so  on.   If you didn't get it, read this again and/or experiment yourself.  It
  41. is very simple actually, but hellishly difficult to explain clearly.
  42.  
  43. Now to the editing.
  44.  
  45. You  should  see orange/gray #-mark at the beginning (and a map if you use WMAP
  46. script  with a map).  Press right arrow key, and the # turns to S.  Also notice
  47. that  the  lower  right  window  changed  to say 'sky'.  Press right again, and
  48. you'll  see  the  word  'sky'  to change to a texture (WOW!).  If you wash your
  49. glasses  and  look  a  little  more  clearly,  little  above this window is the
  50. currently  used texture's number, and it changes every time you press the right
  51. arrow  key (oh, did you SURELY keep up with me?).  The F1-F10 -keys are used to
  52. shortly select one texture of the 8 wall textures available, the arrow keys can
  53. also  be used for that but it is slower to flip thru all those textures..  I am
  54. sure you understand.  Let's move on.
  55.  
  56. Grab  your  mouse  (Of  course  the  one  on the table -Jokebot) and twist it a
  57. little.   You  will see some changes in the biggest window - the gray # or S or
  58. whatever  square  it  now  is,  started  shaking around.  If you didn't get too
  59. excited,  you  realized that this gray thing works as your mouse pointer.  Left
  60. mouse  button  is  used  to  draw,  right is used to clear up, as in DPaint and
  61. maaany many other utils.
  62.  
  63. Now,  let's  assume  you have just had an epilepsy attack and you see something
  64. like  this  on  the  screen's  big  window after you again regain the conscious
  65. consciousness:
  66.  
  67. S#################################    ;0 is the first (F2) square ; font has
  68. S                 3    ;no really suitable char to express it.
  69. S        p         #
  70. S                 #
  71. S    0000000000000000000     #
  72. S                 #
  73. S                 #
  74. S###############################2#
  75.  
  76. Let's take a look at at what you see:
  77.  
  78. S= sky texture set in the left
  79. #= pseudo texture, and lots of it
  80. p= player starting location (placed by pressing 'p')
  81. 0= the first texture square that can be awaken with F2.
  82. 2= the third texture square that can be awaken with F4.
  83. 3= the fourth texture square that can be awaken with F5.
  84.  
  85.  
  86. Let's take another look to see what the 2nd map contains:  Hit TAB key to enter
  87. the second map mode.
  88.  
  89. .#################################    ; · is the small rectangle in the
  90. .11111111111111111111111111111111·    ;editor's screen
  91. .        p        3#
  92. .                3#
  93. .    ···················    3#
  94. .                3#
  95. .22222222222222222222222222222223#
  96. .###############################·#
  97.  
  98. According to this, the uppest wall consists entirely of the second wall texture
  99. (0  is the first, 1 is the second etc.).  The rightmost would be of number four
  100. and the one most below would be of number 2.
  101.  
  102. The walls that have no meaning for the 2nd map mode transform to '·'.  Only the
  103. #s  remain intact.  What APPEARS around those #'s is the second map information
  104. that the engine uses to define what the #-block has on each side of it.
  105.  
  106. You  should  now  be  able to generate any kind of map, or at least you will be
  107. with just a little practise.
  108.  
  109.  
  110. Let's take a look at some more keys:
  111.  
  112. Q quits and saves the current map.
  113. ESC escapes without saving.
  114.  
  115. The  map  file  written  by  the  editor will be called T:MapEditor.out, so the
  116. overwriting  of  older  map  file  is  not  possible  without  wise  scripts or
  117. intentions to overwrite.  This is just a security question.
  118.  
  119.  
  120. S - stands for Select.  This allows you to pick an other texture instead of the
  121. default  one.   A  reqtools  filerequester will appear, and you are supposed to
  122. pick  the  file  with  it.  Only names the length of (combined name/path) of 32
  123. chars  or  less  are allowed.  Longer names overwrite something essential.  The
  124. texture should be 128x128x8 iff brush.  A wall texture is most likely a texture
  125. below 14kB length.
  126.  
  127. F  -  stands  for Floor select.  This allows you to pick another Floor Texture.
  128. This file is prompted likewise.  Expected size is 256x256x8 iff brush - over 20
  129. kB long file is quite likely a floor/ceiling texture.
  130.  
  131. C - stands for Ceiling select.  Similar to the floor select.
  132.  
  133. B - stands for Background select.  This allows you to select another Background
  134. texture  file,  yet  only  one  exsting  with  the  archive.  Do not change the
  135. mountains.chraw to anything else.
  136.  
  137. A  - stands for Attributes.  With this you can edit maze's attributes, like the
  138. height,  ceiling/sky  enability  (and nothing more).  Do not even try the other
  139. ones, the brightness/fadespeed values are still constants.  This is another set
  140. of "friendly" reqtools requesters.
  141.  
  142. That's it.  Have fun editing maps ;)
  143.  
  144. -STL
  145.